import { AnyAction } from "redux";
import * as TYPES from "../action-types";
import Slider from "@/typings/slider";
import Lesson from "@/typings/Lesson";
export interface Lessons {
    loading: boolean;
    list: Lesson[];
    hasMore: boolean;
    offset: number;
    limit: number;
  }
export interface HomeState {
  currentCategory: string;
  sliders: Slider[];
  lessons: Lessons;
}
let initialState: HomeState = {
  currentCategory: "all", //默认当前的分类是显示全部类型的课程
  sliders: [],
  lessons: {
      loading: false,
      list: [],
      hasMore: true,
      offset: 0,
      limit: 5,
    },
};
export default function (
  state: HomeState = initialState,
  action: AnyAction
): HomeState {
  switch (action.type) {
    case TYPES.SET_CURRENT_CATEGORY: //修改当前分类
      return { ...state, currentCategory: action.payload };
    case TYPES.GET_SLIDERS: //轮播图
      return { ...state, sliders: action.payload.data };
    case TYPES.SET_LESSONS_LOADING:
      state.lessons.loading = action.payload;
      console.log(111)
      return state;
    case TYPES.SET_LESSONS:
      state.lessons.loading = false;
      state.lessons.hasMore = action.payload.hasMore;
      state.lessons.list = [...state.lessons.list, ...action.payload.list];
      state.lessons.offset = state.lessons.offset + action.payload.list.length;
      console.log(222)
      return state;
    case TYPES.REFRESH_LESSONS:
      state.lessons.hasMore = action.payload.hasMore;
      state.lessons.list = action.payload.list;
      state.lessons.offset = action.payload.list.length;
      return state;
    default:
      return state;
  }
}
